package com.atguigu.springbootdemo.service;

import com.atguigu.springbootdemo.bean.Employee;
import com.atguigu.springbootdemo.bean.Region;
import com.atguigu.springbootdemo.mapper.EmployeeMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * Created by Smexy on 2022/11/15
 *
 *  EmployeeService 和  EmployeeMapper 有什么区别?
 *      EmployeeMapper： 读写数据库
 *      EmployeeService： 负责定义业务模型
 *                              按照ID查询员工业务:
 *                                      第一步:
 *                                      第二步:
 *                                      第三步:
 *
 *     @Service:
 *          ①给你自己看的，标识这个类是一个业务模型
 *          ②容器扫描到后，会自动在容器中创建这个主键标注的类的单例对象
 */
@Service
public class EmployeeServiceImpl implements EmployeeService
{
    @Autowired
    private EmployeeMapper employeeMapper;
    @Override
    public Employee getEmpById(Integer id) {

        System.out.println("查询之前，做一些事情...");

        Employee emp = employeeMapper.getEmpById(id);

        System.out.println("查询之后，做一些事情...");

        return emp;
    }

    @Override
    public void insertEmp(Employee employee) {

        System.out.println("插入之前，做一些事情...");

        employeeMapper.insertEmp(employee);

        System.out.println("插入之后，做一些事情...");

    }

    @Override
    public void updateEmp(Employee employee) {

        System.out.println("更新之前，做一些事情...");

        employeeMapper.updateEmp(employee);

        System.out.println("更新之后，做一些事情...");

    }

    @Override
    public void deleteEmp(Integer id) {

        System.out.println("删除之前，做一些事情...");

        employeeMapper.deleteEmp(id);

        System.out.println("删除之后，做一些事情...");

    }

    @Override
    public List<Employee> getAll() {

        System.out.println("查询之前，做一些事情...");

        List<Employee> all = employeeMapper.getAll();

        System.out.println("查询之后，做一些事情...");

        return all;
    }

    @Override
    public List<Region> getAllRegion() {
        return employeeMapper.getAllRegion();
    }
}
